﻿// Xshell Reflected Command Type - Contains command type metadata
// 
// <copyright file="ReflectedCommandType.cs" company="TaskyMedia LLC">
//   Copyright © 2010 TaskyMedia LLC
// </copyright>

namespace Xshell
{
    using System;

    /// <summary>
    /// Contains metadata for a reflected <see cref="IXsCommand"/> implementation.
    /// </summary>
    internal class ReflectedCommandType
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="ReflectedCommandType"/> class.
        /// </summary>
        /// <param name="commandType">Type of the command.</param>
        /// <param name="commandArgsType">Type of the command args.</param>
        public ReflectedCommandType(Type commandType, Type commandArgsType)
        {
            this.CommandType = commandType;
            this.CommandArgsType = commandArgsType;
        }

        /// <summary>
        /// Gets or sets the <see cref="System.Type"/> of the command.
        /// </summary>
        /// <value>The <see cref="System.Type"/> of the command.</value>
        public Type CommandType { get; set; }

        /// <summary>
        /// Gets or sets the <see cref="System.Type"/> of the command arguments container.
        /// </summary>
        /// <value>The <see cref="System.Type"/> of the command arguments container.</value>
        public Type CommandArgsType { get; set; }
    }
}
